#!/usr/bin/env node

/*
 如果请求的 url 中的文件不在内存缓存中
      读取磁盘上的文件，存入缓存
      将缓存中的文件内容发送给浏览器
 如果请求的 url 中的文件在内存缓存中
      直接将缓存中的文件内容发送给浏览器
*/
const http=require('http'),
      fs=require('fs'),
      log=console.log;

let buf = {};

const server=http.createServer((req,res)=>{
  sendFile(req,res);
});
server.listen(8080);

function sendFile(req,res){
  let file=__dirname+req.url;

  if(!buf[file]){
    if(!fs.existsSync(file)){
      res.statusCode=404;
      res.end(`${file} not exists!`);
      return;
    }
    log('Disk IO:',file);
    buf[file]=fs.readFileSync(file);
  }
  res.end(buf[file]);
}




